"""1.1.3  二维数组DataFrame"""
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 列名与数据对齐显示
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)

# 以时间序列做索引，用DataFrame数组模拟一组模拟考试成绩，时间及时间间隔、科目自拟，成绩随机生成
df = pd.DataFrame(np.random.randint(60, 100, (4, 4)),  # values部分的值用np生成60~100的4*4数据
                  index=pd.date_range(start='20190630', periods=4, freq='12M'),  # 时间序列作为索引，从20190630开始，间隔为12个月，4个数据
                  columns=['C语言', 'C++', 'Python', 'Java'])  # 列名

# 输出该二维数组DataFrame
print(df)

# 绘制该二维数组的直方图
plt.rcParams['font.family'] = ['SimHei']  # 用来显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
df.plot(kind='bar', figsize=(8, 8), title='大学四年的程序语言的成绩柱状图')  # 利用pandas自带的作图
plt.show()  # 显示图形
